This folder is where I will keep the contemporaneous backups of my daily work. This should suffice while I am the only person writing code into this project. I will post updates on this page each day as I back up so other builders will know what is happening with the code base. There is code here which generates ROM images for the SBCV2 environment. Also code that builds CP/M-80 v2.2 command files (.com), and code that builds cross tools. I happen to develop on Mac OS X, but the cross tools are written in transportable g++ and can be transported to Linux, or Windows (cygwin) with no known problems. Comments and suggestions are welcomed and can be sent to douglas_goodall@mac.com
Comments (16)
at 3:26 am on May 16, 2011
Reply
The 20110516 version includes cbios.s, bdosb01.s, and ccpb03.s files that have been ported for use with sdcc. The rel files from the components of CP/M are linked to the baseline but are not properly located yet. As a proof of concept, it is encouraging that the CP/M components could be assembled with sdasz80. So far I see no reason why all our software cannot be built with the sdcc. The only hitch is that the sdcc package does not include an assembler for the 8080, so eventually our code will all have to be expressed in Z80 opcodes. The Makefile does everything from building to cleaning the directory tree. After the build, the CP/M .COM files are in the Com directory, the EPROM images are in the Rom directory, and tools such as "load", hex2bin, and the test version of fdisk are in the Bin directory. Reference documents are found in the Doc directory.
at 1:55 pm on May 17, 2011
Reply
The 20110517 version includes dbgmon.s. The components dbgmon, cbios, ccp, and bdos are all linked in to the baseline at their target addresses, and the resulting baseline.bin was put through my "dump" program to produce a hex and ascii output (see baseline.dump) that could be compared with the TASM listings to assure offsets and content is correct after the port to sdasz80. I have not compared every byte, but the alignments in the link look good and what code I did compare was all correct. I am thinking about ways too automatically compare the complete binary of the sdasz80 assembled components with the RASM assembled components to assure a perfect port.
at 5:01 pm on May 18, 2011
Reply
The 20110518 version includes "version.cpp" which is a new tool I wrote to compare files at a binary level using specific offsets and lengths. I have already used it to verify the proper conversion of the CBIOS from TASM to SDASZ80 form. There is also a new file "cbioshc.s" which is a work in progress, converting the 8080 style TASM source to Z80 style SDASZ80 source.
at 7:23 am on May 21, 2011
Reply
The 20110521 version includes "cbioshc.s" which is the converted cbios from the hc-cpm22-11-05-17.zip
It assembles without errors and is ready for a binary comparison to assure integrity.
There was a ton of editing done to this, and the conversion comments have not all been removed yet,
but I wanted to go ahead and post this in case someone wants to see what it is looking like.
In this directory also are the BDOS and CCP modules, and the Makefile knows how to build a ROM image from these.
The BASELINE build shows how to manage the components although the offsets in the ROM image are not
normalized yet. See baseline.map
at 4:10 am on May 24, 2011
Reply
The ubios-20110524-built and ubios-20110524-clean are the same fileset as the ubios-11-05-24.tar file, but they are from dougsmac:/Users/doug/src/ubios where they are built and cleaned under Mac OS X. The only difference is the CFG macro in the Makefile. These files demonstrate the ubios build on the Mac under Mac OS X Snow Leopard 10.6.7. Remaining to be done is enabling a build that will run on Windows, especially Windows 7 64-bit Version, and perhaps DOS after that.
at 4:11 am on May 24, 2011
Reply
The ubios-11-05-24.tar file is the ubios folder from server.goodall.com:/home/doug/src/ubios and it demonstrates a multi-platform Makefile which is a joint effort by myself and John Coffman. There is a CFG macro that can be set to one of four values, "macosx", "linux", "windows" or "dos", and subsequent invocations of the make will use the generic rule sets to build the host based tools and the cross compiled and assembled portions. This make is building the CP/M-80 2.2 components (BDOS,CCP,CBIOS) as well as the DBGMON in order to build a ROM image. It also is building several CP/M-80 v2.2 Command files (copyfile.com,fdisk.com), and the host based utilities that assist in the cross compilation.
at 5:06 am on May 26, 2011
Reply
The 20110526 version contains a preliminary attempt to build the Home Computer ROM image with the SDLDZ80 linker instead of concatenating binary chunks as was previously done. Continued enhancement of the Makefile includes the renaming of my hex2bin to dwgh2b so as to allow for various versions of hex2bin to be used within the context of a single Makefile without confusion. A slightly modified version of John Coffman's new hex2bin is also included in the build as jrch2b. The sysgen program has been added for use in the generation of the Home Computer ROM image. The HC-ROMIM.BIN has been included as hc-romim.ref so it will not be destroyed by "make clean"
at 2:00 pm on May 28, 2011
Reply
The 20110528 version has the ubios build folder sorted out into the usual subdirectories and the Makefile has been changed appropriately. Directory macros are being substituted in the Makefile to make things cleaner, but that is not quite complete. "make" and "make clean" are still working fine. No serious code changes today, but the cleanup was overdue and things are nicer now.
at 9:19 pm on May 30, 2011
Reply
The 20110530 version has last minute cleanup on N8 files for release to Max for his evaluation. Also more comments in the Makefile. Best sources so far.
at 12:33 pm on Jun 3, 2011
Reply
The 20110603 version has a new target in the build that generates the rom/sbc2only.rom, which will eventually be the the default ROM image for a standalone configuration. While the build does run without any error messages, the resulting ROM image has not been tested yet. These images are still a work in progress and not ready for general use.
at 6:37 am on Jun 19, 2011
Reply
The 20110619 version has John Coffman's hex2bin folded in as jch2b & jcb2h. My thanks to John for writing such a nice tool.
at 7:02 am on Jul 30, 2011
Reply
The 20110730 version has a new target that generates an image for the ssi2ide-0111 firmware. The binary flash image can be found in the rom subdirectory and is called scsi2ide.rom. It is still very new code and may not work as expected yet, but I wanted to post the current code because it is the beginnings of a generic N8VEM Z-80 firmware build that has a very small assembly startup then the main code is in ANSI C. Right now the main code src/scsi2ide.c just initializes the uart to 9600 baud (this is untested) and outputs a startup message. I will be testing all this today and posting updates as soon as I have a version about which I am more confident.
at 11:55 am on Jul 31, 2011
Reply
The 20110731 version has two changes in it. First is the Makefile.w64 which can build everything on a Windows 7 (64-bit) machine. Secondly, the solution to the problem using echo in the makefile to generate the linker input file has been solved with the lecholf (local echo lf) program which is included in the build. Changes were made to the program. The build can be done on the Windows environment with "wmake -f makefile.w64". There is an error message at the end of the clean that can be ignored. Have fun Neil and John.
at 7:30 am on Aug 8, 2011
Reply
The 20110808 version has N8VEM test protocol files jump loop and scream.
They are in the rom folder and called scsijplp.rom and scsiscrm.rom.
They are built automatically in the Mac version of the build, and have not been added to the Windows build yet.
Since the ubios-20110808-built.zip file has them already built in the rom folder, it is not immediately crucial that
the Windows build makes them as well. The source code for those programs can b e found in the src folder
and is called crt0jplp.s and crt0scrm.s
at 4:30 am on Aug 14, 2011
Reply
The 2011-08-14 version has a makefile called makefile.xp and a batch file called winxpbld.bat.
The files are in dos-eol format.
at 5:12 am on Aug 14, 2011
Reply
The revised file ubios-winxp-2011-08-14.zip has an enhanced makefile called makefile.xp and two batch files, makeup.bat and cleanup.bat.
This makefile properly builds tyne two new ROM images SCSIJPLP.ROM and SCSISCRM.ROM, found in the rom folder.